/*
 * name:密保问题 QA
 * description:验证组件
 * author:yanmu.wj@taobao.com
 * date:2011-11-23
 */
KISSY.add('QA',function(S,Tip){
    var QA = function(cfg){
        this.a1 = cfg.a1 && S.one(cfg.a1);
        this.a1tip = cfg.a1tip && S.one(cfg.a1tip) ? Tip(cfg.a1tip) : null;
        this.a2 = cfg.a2 && S.one(cfg.a2);
        this.a2tip = cfg.a2tip && S.one(cfg.a2tip) ? Tip(cfg.a2tip) : null;
        this.a3 = cfg.a3 && S.one(cfg.a3);
        this.a3tip = cfg.a3tip && S.one(cfg.a3tip) ? Tip(cfg.a3tip) : null;

        this.disabledMsg = S.isString(cfg.disabledMsg) ? cfg.disabledMsg : '密保问题答案格式有误，请重新输入！';
        this.disabled = true;
    };
    var _QA = function(cfg){
        return new QA(cfg);
    };
    S.augment(QA,{
        init:function(){
            if(!this.a1 && !this.a2 && !this.a3) return this;

            var self = this;
            this.a1.on('blur keyup',function(){
                self.check(1);
            });
            this.a2.on('blur keyup',function(){
                self.check(2);
            });
            this.a3.on('blur keyup',function(){
                self.check(3);
            });

            return this;
        },
        check:function(i){
            switch(i){
                case 1:
                    if(this.a1tip){
                        if(this.isEmpty(this.a1)) this.a1tip.show();
                        else this.a1tip.hide();
                    }
                    break;
                case 2:
                    if(this.a2tip){
                        if(this.isEmpty(this.a2)) this.a2tip.show();
                        else this.a2tip.hide();
                    }
                    break;
                case 3:
                    if(this.a3tip){
                        if(this.isEmpty(this.a3)) this.a3tip.show();
                        else this.a3tip.hide();
                    }
                    break;
                default:break;
            }

            this.disabled = this.isEmpty(this.a1) || this.isEmpty(this.a2) || this.isEmpty(this.a3);
        },
        isEmpty:function(a){
            return !S.trim(a.val()).length;
        },
        reset:function(){
            this.a1 && this.a1.val('');
            this.a2 && this.a2.val('');
            this.a3 && this.a3.val('');

            this.a1tip && this.a1tip.hide();
            this.a2tip && this.a2tip.hide();
            this.a3tip && this.a3tip.hide();

            this.disabled = true;
        }
    });

    return _QA;
},{
    requires:['Message']
});
